perm filename PASCAL.NDF[PAS,SYS] blob
sn#472069 filedate 1979-09-09 generic text, type C, neo UTF8
COMMENT ⊗ VALID 00008 PAGES
C REC PAGE DESCRIPTION
C00001 00001
C00003 00002 1) PASCAL.OLD[PAS,SYS] and 2) PASCAL.PAS[PAS,SYS] 9-07-79 12:09 pages 1,1
C00009 00003 1) PASCAL.OLD[PAS,SYS] and 2) PASCAL.PAS[PAS,SYS] 9-07-79 12:09 pages 1,1
C00015 00004 1) PASCAL.OLD[PAS,SYS] and 2) PASCAL.PAS[PAS,SYS] 9-07-79 12:09 pages 12,12
C00019 00005 1) PASCAL.OLD[PAS,SYS] and 2) PASCAL.PAS[PAS,SYS] 9-07-79 12:09 pages 34,34
C00022 00006 1) PASCAL.OLD[PAS,SYS] and 2) PASCAL.PAS[PAS,SYS] 9-07-79 12:09 pages 36,36
C00025 00007 1) PASCAL.OLD[PAS,SYS] and 2) PASCAL.PAS[PAS,SYS] 9-07-79 12:09 pages 36,36
C00028 00008 1) PASCAL.OLD[PAS,SYS] and 2) PASCAL.PAS[PAS,SYS] 9-07-79 12:09 pages 36,36
C00030 ENDMK
C⊗;
1) PASCAL.OLD[PAS,SYS] and 2) PASCAL.PAS[PAS,SYS] 9-07-79 12:09 pages 1,1
**** File 1) PASCAL.OLD[PAS,SYS], Page 1 line 4
1) C00006 00002 (*$T-,S1500,R30*) (*STANFORD LOTS PASCAL COMPILER*)
1) C00014 00003 (*HISTORY*)
**** File 2) PASCAL.PAS[PAS,SYS], Page 1 line 4
2) C00006 00002 (*$T-,D-,S1700,R30*) (*STANFORD LOTS PASCAL COMPILER*)
2) C00014 00003 (*HISTORY*)
***************
**** File 1) PASCAL.OLD[PAS,SYS], Page 1 line 18
1) C00221 00016 (* INIT_COMPILE, PUTADR, LOCATION, INITPASSGO, ERROR *)
1) C00229 00017 (*SYMBOL TABLE INIT: ENTERID, ENTERSTDTYPES, ENTERSTDNAMES, ENTERUNDECL*)
1) C00256 00018 (*GET_DIRECTIVES*)
1) C00269 00019 (* COMPILE[ NEWPAGER, WRITEBUFFER, GETNEXTLINE, FINISHLINE, ERROR_WITH_TEXT, WARNING*)
1) C00281 00020 (*INSYMBOL[NEXTCH, SKIPCOMMENT[OPTIONS], SKIP_E_DIRECTORY*)
1) C00290 00021 (*]INSYMBOL*)
1) C00301 00022 (*SEARCHSECTION, SEARCHID, SKIPIFERR, IFERRSKIP, ERRANDSKIP*)
1) C00306 00023 (* BLOCK[ TYPE CHECKING: CONSTANT, GETBOUNDS, STRING, COMPTYPES[CHECKSSTRING[ISMAGIC]] *)
1) C00319 00024 (* TYPEDEFINITION (TYPE DEFINITION PARSER) *)
1) C00346 00025 (* PARSING OF DECLARATIONS: LABELDECLARATION, CONSTANTDECLARATION, TYPEDECLARATION, VARIABLEDECLARATION *)
1) C00375 00026 (* BODY[GENERATE_WORD,INSERT_ADDRESS,INCREMENT_REGC,DEPOSIT_CONSTANT,MACRO..,PUT_PAGENUMBER,PUT_LINENUMBER,SUPPORT,ALFACONSTANT,ADDNEWCOUNTER*)
1) C00388 00027 (*CLOSEFILES, ENTERBODY, LEAVEBODY*)
1) C00409 00028 (*FETCH_BASIS,GET_PARAMETER_ADDRESS,GENERATE_CODE,LOAD,STORE,LOAD_ADDRESS*)
1) C00422 00029 (* WRITE_MACHINE_CODE[ AND ITS PARTS. *)
1) C00463 00030 (* PARTS. ]WRITE_MACHINE_CODE. *)
1) C00481 00031 (* STATEMENT[ MAKEREAL, SELECTOR[SUBLOWBOUND] *)
1) C00495 00032 (* PROFUNCALL[GETFILENAME,GETPUTRESETREWRITE,READREADLN,BREAKCALL,WRITEWRITELN,MESSAGECALL*)
1) C00521 00033 (* PACKUNPACK, NEWDISPOSE, FIRSTLAST, LOWERUPPERBOUND *)
1) C00542 00034 (*MINMAX,GETLINENRCALL,PAGECALL,DATECALL,TIMECALL,CLOCKCALL,CARDCALL*)
1) C00550 00035 (*ABSCALL,REALTIMECALL,SQRCALL,ODDCALL,ORDCALL,CHRCALL,PREDSUCC,EOFEOLN,PROTECTION,CALLTOCALL[GETSTRINGADDRESS],HALTCALL*)
1) C00559 00036 (*CALL_NON_STANDARD[COMPPARAM,CHECKSSTRINGCALLS,CHARCONSTANT] ]PROFUNCALL*)
1) C00584 00037 (* EXPRESSION[CHANGEBOOL, SEARCHCODE, SIMPLEEXPRESSION[TERM[FACTOR]]] *)
1) C00616 00038 (* ASSIGNMENT[STOREGLOBALS[STOREWORD,GETNEWGLOBPTR]] *)
1) C00627 00039 (*GOTOSTATEMENT,COMPOUNDSTATEMENT,IFSTATEMENT,CASESTATEMENT,REPEATSTATEMENT,WHILESTATEMENT,FORSTATEMENT,LOOPSTATEMENT,WITHSTATEMENT*)
1) C00650 00040 (* ]STATEMENT ]BODY ]BLOCK *)
1) C00663 00041 (* ]COMPILE,REPORTTIME,JUMPTO *)
1) C00673 00042 (* MAIN BODY *)
1) C00685 ENDMK
1) C⊗;
1) (*$T-,S1500,R30*) (*STANFORD LOTS PASCAL COMPILER*)
1) (********************************************************************************
**** File 2) PASCAL.PAS[PAS,SYS], Page 1 line 18
2) C00222 00016 (* INIT_COMPILE, PUTADR, LOCATION, INITPASSGO, ERROR *)
2) C00230 00017 (*SYMBOL TABLE INIT: ENTERID, ENTERSTDTYPES, ENTERSTDNAMES, ENTERUNDECL*)
2) C00257 00018 (*GET_DIRECTIVES*)
2) C00270 00019 (* COMPILE[ NEWPAGER, WRITEBUFFER, GETNEXTLINE, FINISHLINE, ERROR_WITH_TEXT, WARNING*)
2) C00282 00020 (*INSYMBOL[NEXTCH, SKIPCOMMENT[OPTIONS], SKIP_E_DIRECTORY*)
2) C00291 00021 (*]INSYMBOL*)
1) PASCAL.OLD[PAS,SYS] and 2) PASCAL.PAS[PAS,SYS] 9-07-79 12:09 pages 1,1
2) C00302 00022 (*SEARCHSECTION, SEARCHID, SKIPIFERR, IFERRSKIP, ERRANDSKIP*)
2) C00307 00023 (* BLOCK[ TYPE CHECKING: CONSTANT, GETBOUNDS, STRING, COMPTYPES[CHECKSSTRING[ISMAGIC]] *)
2) C00320 00024 (* TYPEDEFINITION (TYPE DEFINITION PARSER) *)
2) C00347 00025 (* PARSING OF DECLARATIONS: LABELDECLARATION, CONSTANTDECLARATION, TYPEDECLARATION, VARIABLEDECLARATION, proceduredeclaration[parameterlist[ffparlist]] *)
2) C00376 00026 (* BODY[GENERATE_WORD,INSERT_ADDRESS,INCREMENT_REGC,DEPOSIT_CONSTANT,MACRO..,PUT_PAGENUMBER,PUT_LINENUMBER,SUPPORT,ALFACONSTANT,ADDNEWCOUNTER*)
2) C00389 00027 (*CLOSEFILES, ENTERBODY, LEAVEBODY*)
2) C00410 00028 (*FETCH_BASIS,GET_PARAMETER_ADDRESS,GENERATE_CODE,LOAD,STORE,LOAD_ADDRESS*)
2) C00423 00029 (* WRITE_MACHINE_CODE[ AND ITS PARTS. *)
2) C00464 00030 (* PARTS. ]WRITE_MACHINE_CODE. *)
2) C00482 00031 (* STATEMENT[ MAKEREAL, SELECTOR[SUBLOWBOUND] *)
2) C00496 00032 (* PROFUNCALL[GETFILENAME,GETPUTRESETREWRITE,READREADLN,BREAKCALL,WRITEWRITELN,MESSAGECALL*)
2) C00522 00033 (* PACKUNPACK, NEWDISPOSE, FIRSTLAST, LOWERUPPERBOUND *)
2) C00543 00034 (*MINMAX,GETLINENRCALL,PAGECALL,DATECALL,TIMECALL,CLOCKCALL,CARDCALL*)
2) C00551 00035 (*ABSCALL,REALTIMECALL,SQRCALL,ODDCALL,ORDCALL,CHRCALL,PREDSUCC,EOFEOLN,PROTECTION,CALLTOCALL[GETSTRINGADDRESS],HALTCALL*)
2) C00560 00036 (*CALL_NON_STANDARD[COMPPARAM,CHECKSSTRINGCALLS,CHARCONSTANT,saveexpr] ]PROFUNCALL*)
2) C00587 00037 (* EXPRESSION[CHANGEBOOL, SEARCHCODE, SIMPLEEXPRESSION[TERM[FACTOR]]] *)
2) C00619 00038 (* ASSIGNMENT[STOREGLOBALS[STOREWORD,GETNEWGLOBPTR]] *)
2) C00630 00039 (*GOTOSTATEMENT,COMPOUNDSTATEMENT,IFSTATEMENT,CASESTATEMENT,REPEATSTATEMENT,WHILESTATEMENT,FORSTATEMENT,LOOPSTATEMENT,WITHSTATEMENT*)
2) C00653 00040 (* ]STATEMENT ]BODY ]BLOCK *)
2) C00666 00041 (* ]COMPILE,REPORTTIME,JUMPTO *)
2) C00676 00042 (* MAIN BODY *)
2) C00688 ENDMK
2) C⊗;
2) (*$T-,D-,S1700,R30*) (*STANFORD LOTS PASCAL COMPILER*)
2) (********************************************************************************
***************
**** File 1) PASCAL.OLD[PAS,SYS], Page 3 line 185
1) * (32)B MESSAGE WOULD BLOW WHEN NEEDING LAST A PASCAL-WRITTEN RUNTIME.
1) *
**** File 2) PASCAL.PAS[PAS,SYS], Page 3 line 185
2) * (32)B MESSAGE WOULD BLOW WHEN NEEDING LAST A PASCAL-WRITTEN RUNTIME. FIXED.
2) *
***************
**** File 1) PASCAL.OLD[PAS,SYS], Page 12 line 21
1) %1 HEADER = 'PASCAL/LOTS FROM 1-JUL-79'; (* 14.*) \
1) %2 HEADER = 'PASSGO/LOTS FROM 1-JUL-79'; (* 15.*) \
1) %3 header = 'PASCAL/SAIL 1.0 1-JUL-79'; \
1) %4 HEADER = 'PASSGO/SAIL 1.0 1-JUL-79'; \
1) headlen = 11; (*PART OF THE HEADER THAT WIL SHOW UP IN TTY*)
**** File 2) PASCAL.PAS[PAS,SYS], Page 12 line 21
2) %1 HEADER = 'PASCAL/LOTS 1.1 6-SEP-79'; (* 14.*) \
2) %2 HEADER = 'PASSGO/LOTS 1.1 6-SEP-79'; (* 15.*) \
2) %3 header = 'PASCAL/SAIL 1.1 6-SEP-79'; \
2) %4 HEADER = 'PASSGO/SAIL 1.1 6-SEP-79'; \
1) PASCAL.OLD[PAS,SYS] and 2) PASCAL.PAS[PAS,SYS] 9-07-79 12:09 pages 12,12
2) headlen = 11; (*PART OF THE HEADER THAT WIL SHOW UP IN TTY*)
***************
**** File 1) PASCAL.OLD[PAS,SYS], Page 15 line 200
1) extna[declfunc,22] := 'GETCHA '; extlanguage[declfunc,22] := pascalsy; (* 25.*)
1) extna[declfunc,23] := 'POS '; extlanguage[declfunc,23] := pascalsy; (* 25.*)
**** File 2) PASCAL.PAS[PAS,SYS], Page 15 line 200
2) extna[declfunc,22] := 'GETCHR '; extlanguage[declfunc,22] := pascalsy; (* 25.*)
2) extna[declfunc,23] := 'POS '; extlanguage[declfunc,23] := pascalsy; (* 25.*)
***************
**** File 1) PASCAL.OLD[PAS,SYS], Page 16 line 29
1) counting := false; (* 28.*)
1) genprocfile := false;
**** File 2) PASCAL.PAS[PAS,SYS], Page 16 line 29
2) counting := false; (* 28.*) errorinlast := true; (* 30.*)
2) genprocfile := false;
***************
**** File 1) PASCAL.OLD[PAS,SYS], Page 25 line 1
1) (* PARSING OF DECLARATIONS: LABELDECLARATION, CONSTANTDECLARATION, TYPEDECLARATION, VARIABLEDECLARATION *)
1) PROCEDURE labeldeclaration;
**** File 2) PASCAL.PAS[PAS,SYS], Page 25 line 1
2) (* PARSING OF DECLARATIONS: LABELDECLARATION, CONSTANTDECLARATION, TYPEDECLARATION, VARIABLEDECLARATION, proceduredeclaration[parameterlist[ffparlist]] *)
2) PROCEDURE labeldeclaration;
***************
**** File 1) PASCAL.OLD[PAS,SYS], Page 32 line 408
1) generate_code( 200B (*MOVE*) , regin+3 , gattr ) ;
1) regc := gattr.reg ;
**** File 2) PASCAL.PAS[PAS,SYS], Page 32 line 408
2) generate_code( 200B (*MOVE*) , regc+1 , gattr ) ;
2) regc := gattr.reg ;
***************
**** File 1) PASCAL.OLD[PAS,SYS], Page 34 line 28
1) LOOP
**** File 2) PASCAL.PAS[PAS,SYS], Page 34 line 28
2) macro3(271b(*addi*),topp,topp_offset+1);
2) LOOP
***************
1) PASCAL.OLD[PAS,SYS] and 2) PASCAL.PAS[PAS,SYS] 9-07-79 12:09 pages 34,34
**** File 1) PASCAL.OLD[PAS,SYS], Page 34 line 44
1) macro4(202B(*MOVEM*),reg,topp,topp_offset + i);
1) IF first_expression THEN
**** File 2) PASCAL.PAS[PAS,SYS], Page 34 line 45
2) macro4(202B(*MOVEM*),reg,topp,0);
2) macro3(350b(*aos*),0,topp);
2) IF first_expression THEN
***************
**** File 1) PASCAL.OLD[PAS,SYS], Page 34 line 71
1) insert_address(no, insert_size, topp_offset + i);
1) IF conversion THEN
**** File 2) PASCAL.PAS[PAS,SYS], Page 34 line 73
2) insert_address(no, insert_size, topp_offset + i+1);
2) macro3(275b(*subi*),topp,topp_offset+i+1);
2) IF conversion THEN
***************
**** File 1) PASCAL.OLD[PAS,SYS], Page 36 line 1
1) (*CALL_NON_STANDARD[COMPPARAM,CHECKSSTRINGCALLS,CHARCONSTANT] ]PROFUNCALL*)
1) PROCEDURE call_non_standard;
**** File 2) PASCAL.PAS[PAS,SYS], Page 36 line 1
2) (*CALL_NON_STANDARD[COMPPARAM,CHECKSSTRINGCALLS,CHARCONSTANT,saveexpr] ]PROFUNCALL*)
2) PROCEDURE call_non_standard;
***************
**** File 1) PASCAL.OLD[PAS,SYS], Page 36 line 13
1) FUNCTION compparam(fcp1,fcp2 : ctp):boolean;
**** File 2) PASCAL.PAS[PAS,SYS], Page 36 line 12
2) oldsstringstart,
2) oldparsingparameters: boolean;
2) FUNCTION compparam(fcp1,fcp2 : ctp):boolean;
***************
**** File 1) PASCAL.OLD[PAS,SYS], Page 36 line 93
1) BEGIN (* CALL_NON_STANDARD *)
**** File 2) PASCAL.PAS[PAS,SYS], Page 36 line 95
2) (* 25. put string expressions in memory, to be able to address them.*)
2) procedure saveexpr;
2) var
2) lattr: attr;
2) begin (*saveexpr*)
2) with lattr do
2) begin
1) PASCAL.OLD[PAS,SYS] and 2) PASCAL.PAS[PAS,SYS] 9-07-79 12:09 pages 36,36
2) typtr := gattr.typtr;
2) kind := varbl;
2) vlevel := level;
2) dplmt := lc;
2) indexr := basis;
2) packfg := notpack;
2) indbit := 0;
2) vrelbyte := no;
2) lc := lc + typtr↑.size;
2) end;
2) if lcmax < lc then
2) lcmax := lc;
2) store(gattr.reg,lattr);
2) gattr := lattr;
2) regc := regc-1;
2) end (*saveexpr*);
2) BEGIN (* CALL_NON_STANDARD *)
***************
**** File 1) PASCAL.OLD[PAS,SYS], Page 36 line 96
1) pctp := fcp; (* 25.*)
**** File 2) PASCAL.PAS[PAS,SYS], Page 36 line 122
2) llc := lc ;
2) pctp := fcp; (* 25.*)
***************
**** File 1) PASCAL.OLD[PAS,SYS], Page 36 line 119
1) llc := lc ;
1) lc := lc + save_count ;
**** File 2) PASCAL.PAS[PAS,SYS], Page 36 line 146
2) lc := lc + save_count ;
***************
**** File 1) PASCAL.OLD[PAS,SYS], Page 36 line 139
1) parsingparameters := true; (* 25. *)
**** File 2) PASCAL.PAS[PAS,SYS], Page 36 line 165
2) oldparsingparameters := parsingparameters;
2) oldsstringstart := sstringstart;
2) parsingparameters := true; (* 25. *)
***************
**** File 1) PASCAL.OLD[PAS,SYS], Page 36 line 236
1) IF (typtr↑.bitsize = 7) AND (kind = cst) THEN
1) charconstant(chr(cval.ival));
1) PASCAL.OLD[PAS,SYS] and 2) PASCAL.PAS[PAS,SYS] 9-07-79 12:09 pages 36,36
1) load_address;
**** File 2) PASCAL.PAS[PAS,SYS], Page 36 line 264
2) if kind = cst then
2) begin
2) IF typtr↑.bitsize = 7 THEN
2) charconstant(chr(cval.ival));
2) end
2) else if kind = expr then
2) saveexpr;
2) load_address;
***************
**** File 1) PASCAL.OLD[PAS,SYS], Page 36 line 338
1) parsingparameters := false; (* 25.*)
1) IF sy = rparent THEN insymbol
**** File 2) PASCAL.PAS[PAS,SYS], Page 36 line 371
2) parsingparameters := oldparsingparameters; (* 25.*)
2) sstringstart := oldsstringstart;
2) IF sy = rparent THEN insymbol
***************
**** File 1) PASCAL.OLD[PAS,SYS], Page 36 line 368
1) macro3(515B(*HRLZI*),reg0,-number_of_parameters);
**** File 2) PASCAL.PAS[PAS,SYS], Page 36 line 402
2) if level > 1 then
2) macro4r(202b(*movem*),newreg,reg0,lc)
2) else
2) macro4(202b(*movem*),newreg,basis,lc);
2) lc := lc + 1;
2) if lc > lcmax then lcmax := lc;
2) macro3(515B(*HRLZI*),reg0,-number_of_parameters);
***************
**** File 1) PASCAL.OLD[PAS,SYS], Page 36 line 385
1) macro3(275B(*SUBI*),topp,topp_offset);
**** File 2) PASCAL.PAS[PAS,SYS], Page 36 line 425
2) if level > 1 then
2) macro4r(200b(*move*),newreg,reg0,lc)
2) else
2) macro4r(200b(*move*),newreg,basis,lc);
2) macro3(275B(*SUBI*),topp,topp_offset);
***************
**** File 1) PASCAL.OLD[PAS,SYS], Page 36 line 425
1) PASCAL.OLD[PAS,SYS] and 2) PASCAL.PAS[PAS,SYS] 9-07-79 12:09 pages 36,36
1) lc := llc
1) END ;
1) gattr.typtr := fcp↑.idtype; regc := lregc
**** File 2) PASCAL.PAS[PAS,SYS], Page 36 line 469
2) END ;
2) lc := llc;
2) gattr.typtr := fcp↑.idtype; regc := lregc
***************
**** File 1) PASCAL.OLD[PAS,SYS], Page 40 line 60
1) IF (klass = vars) AND (vlev = 0) AND (sy = arrow) AND
**** File 2) PASCAL.PAS[PAS,SYS], Page 40 line 60
2) IF klass = proc THEN profuncall(fsys,lcp)
2) else
2) begin
2) IF (klass = vars) AND (vlev = 0) AND (sy = arrow) AND
***************
**** File 1) PASCAL.OLD[PAS,SYS], Page 40 line 65
1) IF lcp↑.klass = proc THEN profuncall(fsys,lcp)
1) ELSE assignment(lcp)
1) END;
**** File 2) PASCAL.PAS[PAS,SYS], Page 40 line 68
2) assignment(lcp);
2) end;
2) END;
***************
**** File 1) PASCAL.OLD[PAS,SYS], Page 40 line 271
1) counter := 1; startofcounts := lcmain;
**** File 2) PASCAL.PAS[PAS,SYS], Page 40 line 274
2) lcmain := lcmain + 32; (*to provide for space for temporaries*)
2) counter := 1; startofcounts := lcmain;
***************